package com.csl.jsonpreference.test

import com.csl.jsonpreference.bean.ConfigTYPE
import com.csl.jsonpreference.tag.JsonConfig
import com.google.gson.Gson
import com.google.gson.annotations.SerializedName
import org.json.JSONObject

@JsonConfig(title = "wifi串口配置")
class TestBean {

    companion object {
        fun createForJson(json: JSONObject): WifiSerialConfig {
            var config: WifiSerialConfig =
                Gson().fromJson(json.toString(), WifiSerialConfig::class.java)
            config.type = SerialType.getTypeForCode(json.optInt("type"))
            return config
        }
    }

//    @JsonConfig(key="0", title = "串口类型",describe ="", index = 0)
//    @SerializedName("0")
//    var type: SerialType = SerialType.SOFTWARE_SERIAL
//
//    @JsonConfig(title = "是否启用", index = 1)
//    var enable: Boolean = false
//
//    @JsonConfig(title = "识别为命令",describe = "true不转发tcp", index = 2)
//    var aquaInput: Boolean = false
//
//    @JsonConfig(title = "波特率", index = 3,
//        values = ["115200", "9600"]
//    )
//    var baud: Int = 9600
//
//    @JsonConfig(title = "RX", index = 4, values = ["1","2","3"])
//    var rx: Int = 0
//
//    @JsonConfig(title = "TX", index = 5)
//    var tx: Int = 0
//
//    @JsonConfig(title = "颜色", index = 1, type = ConfigTYPE.COLOR)
//    var color: Int = 0
//
//
//    @JsonConfig(title = "车模", index = 1, type = ConfigTYPE.ENUM)
//    var carMode: CarMode = CarMode.CAR_ALL
//
//

    @JsonConfig(title = "数字表", describe = "数字描述")
    var intes: Array<Int>? = null

//    @JsonConfig(title = "名字表")
//    var strs: Array<String>? = null

//    @JsonConfig(title = "wifi 列表", listType = WifiInfo::class)
//    var wifis: ArrayList<WifiInfo>? = null
//
//    @JsonConfig(title = "wifi 列表2")
//    var wifis2: Array<WifiInfo>? = null

//    @JsonConfig(title = "wifi 单条", describe = "上级描述", index = 0)
//    var wifi3: WifiInfo? = null

//    override fun toString(): String {
//        return "WifiSerialConfig(enable=$enable, baud=$baud, rx=$rx, tx=$tx)"
//    }

}